<?php

/**
 * The public-facing functionality of the plugin.
 *
 * @link       https://3c3it.com
 * @since      1.0.0
 *
 * @package    Wp_Lara_Press
 * @subpackage Wp_Lara_Press/public
 */

/**
 * The public-facing functionality of the plugin.
 *
 * Defines the plugin name, version, and two examples hooks for how to
 * enqueue the public-facing stylesheet and JavaScript.
 *
 * @package    Wp_Lara_Press
 * @subpackage Wp_Lara_Press/public
 * @author     青川 <lqczzyx@sina.com>
 */
class Wp_Lara_Press_Public
{

	/**
	 * The ID of this plugin.
	 *
	 * @since    1.0.0
	 * @access   private
	 * @var      string    $plugin_name    The ID of this plugin.
	 */
	private $plugin_name;

	/**
	 * The version of this plugin.
	 *
	 * @since    1.0.0
	 * @access   private
	 * @var      string    $version    The current version of this plugin.
	 */
	private $version;

	/**
	 * Initialize the class and set its properties.
	 *
	 * @since    1.0.0
	 * @param      string    $plugin_name       The name of the plugin.
	 * @param      string    $version    The version of this plugin.
	 */
	public function __construct($plugin_name, $version)
	{

		$this->plugin_name = $plugin_name;
		$this->version = $version;
	}

	/**
	 * Register the stylesheets for the public-facing side of the site.
	 *
	 * @since    1.0.0
	 */
	public function enqueue_styles()
	{

		/**
		 * This function is provided for demonstration purposes only.
		 *
		 * An instance of this class should be passed to the run() function
		 * defined in Wp_Lara_Press_Loader as all of the hooks are defined
		 * in that particular class.
		 *
		 * The Wp_Lara_Press_Loader will then create the relationship
		 * between the defined hooks and the functions defined in this
		 * class.
		 */

		wp_enqueue_style($this->plugin_name, plugin_dir_url(__FILE__) . 'css/wp-lara-press-public.css', array(), $this->version, 'all');
	}

	/**
	 * Register the JavaScript for the public-facing side of the site.
	 *
	 * @since    1.0.0
	 */
	public function enqueue_scripts()
	{

		/**
		 * This function is provided for demonstration purposes only.
		 *
		 * An instance of this class should be passed to the run() function
		 * defined in Wp_Lara_Press_Loader as all of the hooks are defined
		 * in that particular class.
		 *
		 * The Wp_Lara_Press_Loader will then create the relationship
		 * between the defined hooks and the functions defined in this
		 * class.
		 */

		wp_enqueue_script($this->plugin_name, plugin_dir_url(__FILE__) . 'js/wp-lara-press-public.js', array('jquery'), $this->version, false);
	}

	public function api_query_vars($query_vars)
	{
		$query_vars[] = WP_LARA_PRESS_API_PREFIX;
		return $query_vars;
	}

	public function api_rewrite_rules()
	{
		add_rewrite_rule(
			'^' . WP_LARA_PRESS_API_PREFIX . '(/.*)?$',
			'index.php?' . WP_LARA_PRESS_API_PREFIX . '=1',
			'top'
		);
	}

	public function api_redirect()
	{
		global $wp_query;
		$larapress_page = $wp_query->query_vars;
		if (isset($larapress_page[WP_LARA_PRESS_API_PREFIX])) {
			require_once WP_LARA_PRESS_PLUGIN_BASIS_PATH . 'api/public/index.php';
			exit;
		}
	}
}
